package org.jeecg.modules.lab.utensil.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.lab.aop.ForUpdate;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * @Description: 器具信息
 * @Author: jeecg-boot
 * @Date:   2023-07-11
 * @Version: V1.0
 */
@Data
@TableName("lab_utensil")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="lab_utensil对象", description="器具信息")
public class LabUtensil implements Serializable {
    private static final long serialVersionUID = 1L;

	/**主键*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
	/**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
	/**创建日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
	/**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
	/**更新日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
	/**所属部门*/
    @ApiModelProperty(value = "所属部门")
    private String sysOrgCode;
	/**器具名称*/
	@Excel(name = "器具名称", width = 15)
    @ApiModelProperty(value = "器具名称")
    @ForUpdate(fieldName = "器具名称")
    private String uteName;
	/**器具自编号*/
	@Excel(name = "器具自编号", width = 15)
    @ApiModelProperty(value = "器具自编号")
    private String uteNumber;
	/**出厂编号*/
	@Excel(name = "出厂编号", width = 15)
    @ApiModelProperty(value = "出厂编号")
    private String manuNumber;
	/**型号/规格/等级*/
	@Excel(name = "型号/规格/等级", width = 15)
    @ApiModelProperty(value = "型号/规格/等级")
    @ForUpdate(fieldName = "型号/规格/等级")
    private String specification;
	/**测量范围*/
	@Excel(name = "测量范围", width = 15)
    @ApiModelProperty(value = "测量范围")
    private String usableRange;
	/**用途*/
	@Excel(name = "用途", width = 15)
    @ApiModelProperty(value = "用途")
    @ForUpdate(fieldName = "用途")
    private String purpose;
	/**设备分类(A/B/C/D)*/
	@Excel(name = "设备分类(A/B/C/D)", width = 15,dicCode = "type")
    @Dict(dicCode = "type")
    @ApiModelProperty(value = "设备分类(A/B/C/D)")
    @ForUpdate(fieldName = "设备分类")
    private String sort;
	/**责任人*/
	@Excel(name = "责任人", width = 15)
    @ApiModelProperty(value = "责任人")
    @ForUpdate(fieldName = "责任人")
    private String personResponsible;
	/**存放位置*/
	@Excel(name = "存放位置", width = 15)
    @ApiModelProperty(value = "存放位置")
    @ForUpdate(fieldName = "存放位置")
    private String storageLocation;
	/**检定参数/送检项*/
	@Excel(name = "检定参数/送检项", width = 15)
    @ApiModelProperty(value = "检定参数/送检项")
    @ForUpdate(fieldName = "检定参数/送检项")
    private String heckItem;
	/**溯源方式*/
	@Excel(name = "溯源方式", width = 15)
    @ApiModelProperty(value = "溯源方式")
    @ForUpdate(fieldName = "溯源方式")
    private String traceabilityMethod;
    /**溯源单位*/
    @Excel(name = "溯源单位", width = 15)
    @ApiModelProperty(value = "溯源单位")
    private java.lang.String lastFirm;
    /**证书报告*/
    @Excel(name = "证书报告", width = 15)
    @ApiModelProperty(value = "证书报告")
    private java.lang.String certificate;
	/**是否现场检定*/
	@Excel(name = "是否现场检定", width = 15)
    @ApiModelProperty(value = "是否现场检定")
    @ForUpdate(fieldName = "是否现场检定")
    private String fieldInspect;
	/**检定周期/(月)*/
	@Excel(name = "检定周期/(月)", width = 15)
    @ApiModelProperty(value = "检定周期/(月)")
    @ForUpdate(fieldName = "检定周期/(月)")
    private Integer inspectCycle;
	/**上次检定日期*/
	@Excel(name = "上次检定日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "上次检定日期")
    @ForUpdate(fieldName = "上次检定日期")
    private Date lastInspectDate;
	/**有效截止日期*/
	@Excel(name = "有效截止日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "有效截止日期")
    @ForUpdate(fieldName = "有效截止日期")
    private Date expirationDate;
	/**计划送检日期*/
	@Excel(name = "计划送检日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "计划送检日期")
    @ForUpdate(fieldName = "计划送检日期")
    private Date planInspectDate;
	/**确认结果*/
	@Excel(name = "确认结果", width = 15)
    @ApiModelProperty(value = "确认结果")
    @ForUpdate(fieldName = "确认结果")
    private String confirmResult;
    /**确认时间*/
    @Excel(name = "确认时间", width = 15)
    @ApiModelProperty(value = "确认时间")
    private java.lang.String confirmDate;
	/**确认人*/
	@Excel(name = "确认人", width = 15)
    @ApiModelProperty(value = "确认人")
    @ForUpdate(fieldName = "确认人")
    private String confirmPerson;
	/**备注*/
	@Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    @ForUpdate(fieldName = "备注")
    private String remark;
	/**器具照片*/
	@Excel(name = "器具照片", width = 15)
    @ApiModelProperty(value = "器具照片")
    @ForUpdate(fieldName = "器具照片")
    private String utePicture;
	/**规程文件*/
	@Excel(name = "规程文件", width = 15)
    @ApiModelProperty(value = "规程文件")
    @ForUpdate(fieldName = "规程文件")
    private String instructions;
    /**设备Id*/
    @Excel(name = "设备Id", width = 15)
    @ApiModelProperty(value = "设备Id")
    @ForUpdate(fieldName = "设备Id")
    private String deviceId;
    /**器具状态*/
    @Excel(name = "器具状态", width = 15, dicCode = "ute_status")
    @Dict(dicCode = "ute_status")
    @ApiModelProperty(value = "器具状态")
    private String status;
    /**修正值*/
    @Excel(name = "修正值", width = 15)
    @ApiModelProperty(value = "修正值")
    private java.lang.String amendValue;
    /**送检/不送检*/
    @Excel(name = "送检/不送检", width = 15)
    @ApiModelProperty(value = "送检/不送检")
    private java.lang.String inspDecide;

    /**器具唯一编码*/
    @Excel(name = "器具唯一编码", width = 15)
    @ApiModelProperty(value = "器具唯一编码")
    private java.lang.String serialNum;

    /**器具的使用状态*/
    @ApiModelProperty(value = "器具的使用状态")
    private String useStatus;

    /**公用标识(1为是、0为否)*/
    @ApiModelProperty(value = "公用标识(1为是、0为否)")
    private String commonMark;

    /**数据同步标识*/
    @ApiModelProperty(value = "数据同步标识")
    private java.lang.String synFlag;

}
